
#ifndef SUPERFICIE_H_
#define SUPERFICIE_H_

#include "coord.h"

class Superficie {
   public:
      virtual ~Superficie() {}

      /*
       * Precondicion:
       *    0 <= u <= 1
       *    0 <= v <= 1
       *
       * */
      virtual Coord operator()(float u, float v) const = 0;
      virtual Coord eval(float u, float v) const { 
         return (*this)(u, v);
      }
      virtual Coord normal(float u, float v) const = 0;

};

#endif
